<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            position: absolute;
            left: 0;
            width: 100px;
            height: 100px;
            background-color: pink;
        }
    </style>
</head>

<body>
    <div></div>
    <script>

        // （1） 触摸元素 touchstart：  获取手指初始坐标，同时获得盒子原来的位置
        // （2） 移动手指 touchmove：  计算手指的滑动距离，并且移动盒子
        //（3） 离开手指 touchend:

        // 课后复习
        var div = document.querySelector('div');
        var startX = 0;
        var startY = 0;
        var x = 0;
        var y = 0;

        // 手指触摸屏幕时候
        div.addEventListener('touchstart', function (e) {
            // 获取触摸的初始坐标
            startX = e.targetTouches[0].pageX;
            startY = e.targetTouches[0].pageY;
            // 获取div的初始坐标
            x = this.offsetLeft;
            y = this.offsetTop;
        })
        // 手指移动后，获得移动后手指的坐标,移动距离等于移动后做包减去之前的坐标
        div.addEventListener('touchmove', function (e) {
            var moveX = e.targetTouches[0].pageX- startX;
            var moveY = e.targetTouches[0].pageY- startY;
            this.style.left=moveX+ x+'px' ;
            this.style.top=moveY+ y+'px';
        })




        // 初始代码
        // var div = document.querySelector('div');
        // var startX = 0; //获取手指初始坐标
        // var startY = 0;
        // var x = 0; //获得盒子原来的位置
        // var y = 0;
        // div.addEventListener('touchstart', function (e) {
        //     //  获取手指初始坐标
        //     startX = e.targetTouches[0].pageX;
        //     startY = e.targetTouches[0].pageY;
        //     x = this.offsetLeft;
        //     y = this.offsetTop;
        // });

        // div.addEventListener('touchmove', function (e) {
        //     //  计算手指的移动距离： 手指移动之后的坐标减去手指初始的坐标
        //     var moveX = e.targetTouches[0].pageX - startX;
        //     var moveY = e.targetTouches[0].pageY - startY;
        //     // 移动我们的盒子 盒子原来的位置 + 手指移动的距离
        //     this.style.left = x + moveX + 'px';
        //     this.style.top = y + moveY + 'px';
        //     e.preventDefault(); // 阻止屏幕滚动的默认行为
        // });




        // 课堂练习，有问题
        // （1） 触摸元素 touchstart：  获取手指初始坐标，同时获得盒子原来的位置
        // （2） 移动手指 touchmove：  计算手指的滑动距离，并且移动盒子
        // // （3） 离开手指 touchend:

        // 获取元素
        var div = document.querySelector('div');
        // 声明手指开始触摸时候的坐标
        var startX = 0;
        var startY = 0;
        // 声明div盒子开始的坐标
        var x = 0;
        var y = 0;
        // 添加触摸事件
        div.addEventListener('touchstart', function (e) {
            // 获取手指开始触摸时候的坐标
            var startX = e.targetTouches[0].pageX;
            var startY = e.targetTouches[0].pageY;
            // 获取div盒子开始的坐标
            x = this.offsetLeft;
            y = this.offsetTop;
        })

        div.addEventListener('touchmove', function (e) {
            // 获取移动后手指的坐标
            // 手指移动的距离等于手指移动后的坐标减去移动前的坐标
            var moveX = e.targetTouches[0].pageX - startX;
            var moveY = e.targetTouches[0].pageY - startY;
            // 盒子移动后的坐标等于盒子原来的坐标加上手指移动的坐标
            this.style.left = x + moveX + 'px';
            this.style.top = y + moveY + 'px';
            // 阻止屏幕默认移动行为，防止拖动页面
            e.preventDefault();
        })


        // 嘉良哥哥
        // （1） 触摸元素 touchstart：  获取手指初始坐标，同时获得盒子原来的位置
        // （2） 移动手指 touchmove：  计算手指的滑动距离，并且移动盒子
        // （3） 离开手指 touchend:
        // var div = document.querySelector('div');
        // var startX = 0; //获取手指初始坐标
        // var startY = 0;
        // var x = 0; //获得盒子原来的位置
        // var y = 0;
        // div.addEventListener('touchstart', function (e) {
        //     //  获取手指初始坐标
        //     startX = e.targetTouches[0].pageX;
        //     startY = e.targetTouches[0].pageY;
        //     x = this.offsetLeft;
        //     y = this.offsetTop;
        // });

        // div.addEventListener('touchmove', function (e) {
        //     //  计算手指的移动距离： 手指移动之后的坐标减去手指初始的坐标
        //     var moveX = e.targetTouches[0].pageX - startX;
        //     var moveY = e.targetTouches[0].pageY - startY;
        //     // 移动我们的盒子 盒子原来的位置 + 手指移动的距离
        //     this.style.left = x + moveX + 'px';
        //     this.style.top = y + moveY + 'px';
        //     e.preventDefault(); // 阻止屏幕滚动的默认行为
        // });






    </script>
</body>

</html>